#include<iostream>
using namespace std;

/*
class Test
{
public:
	Test(int t = 10)
		:_t(t)
	{
		cout << "Test(int):" << this << endl;
	}

	~Test()
	{
		cout << "~Test():" << this << endl;
	}
private:
	int _t;
	int _a;
};


void Test2()
{
	// 注意：当申请一点自定义类型对象的空间时，类必须要提供默认或者全缺省的构造方法
	Test* pt = new Test[10];
	delete[] pt;
}

int main()
{
	//Test2();
	int* ptr = nullptr;
	free (ptr);
	free(ptr);
	return 0;
}
*/


class Test
{
public:
	Test(int t = 10)
		:_t(t)
	{
		cout << "Test(int):" << this << endl;
	}

	~Test()
	{
		cout << "~Test():" << this << endl;
	}
private:
	int _t;
};

int main()
{
	
	// new
	Test* pt = (Test*)malloc(sizeof(Test));//申请大小为Test的空间

	// 位置new：placement-new  定位new
	new(pt) Test(100);//调用Test构造函数


	// delete pt;
	pt->~Test(); //析构函数调用
	free(pt);      //释放资源
	
	return 0;
}